﻿using MediaDevices.Internal;

namespace MediaDevices
{
    /// <summary>
    /// MediaDevice services
    /// </summary>
    public enum MediaDeviceServices
    {
        /// <summary>
        /// Unknown service
        /// </summary>
        [EnumGuid()]
        Unknown, 

        /// <summary>
        /// All services
        /// </summary>
        [EnumGuid(0x9EF44F80, 0x3D64, 0x4246, 0xA6, 0xAA, 0x20, 0x6F, 0x32, 0x8D, 0x1E, 0xDC)]
        All,

        /// <summary>
        /// Contact service
        /// </summary>
        [EnumGuid(0xDD04D5FC, 0x9D6E, 0x4F76, 0x9D, 0xCF, 0xEC, 0xA6, 0x33, 0x9B, 0x73, 0x89)]
        Contact,
        
        /// <summary>
        /// Calender service
        /// </summary>
        [EnumGuid(0xE4DFDBD3, 0x7F04, 0x45E9, 0x9F, 0xA1, 0x5C, 0xA0, 0xEA, 0xEB, 0x0A, 0xE3)]
        Calendar,

        /// <summary>
        /// Notes service
        /// </summary>
        [EnumGuid(0x5c017aea, 0xe706, 0x4719, 0x8c, 0xc0, 0xa3, 0x03, 0x83, 0x6f, 0xd3, 0x21)] 
        Notes,

        /// <summary>
        /// Task service
        /// </summary>
        [EnumGuid(0xBB340C54, 0xB5C6, 0x491D, 0x88, 0x27, 0x28, 0xD0, 0xE7, 0x63, 0x19, 0x03)]
        Task,

        /// <summary>
        /// Status service
        /// </summary>
        [EnumGuid(0x0B9F1048, 0xB94B, 0xDC9A, 0x4e, 0xd7, 0xfe, 0x4f, 0xed, 0x3a, 0x0d, 0xeb)]
        Status,

        /// <summary>
        /// Hints service
        /// </summary>
        [EnumGuid(0xc8a98b1f, 0x6b19, 0x4e79, 0xa4, 0x14, 0x67, 0xea, 0x4c, 0x39, 0xee, 0xc2)]
        Hints,

        /// <summary>
        /// Metadata service
        /// </summary>
        [EnumGuid(0x332ffe6a, 0xaf65, 0x41e1, 0xa0, 0xaf, 0xd3, 0xe2, 0x62, 0x7b, 0xdf, 0x54)]
        Metadata,

        /// <summary>
        /// Ringtone service
        /// </summary>
        [EnumGuid(0xd0eace0e, 0x707d, 0x4106, 0x8d, 0x38, 0x4f, 0x56, 0x0e, 0x6a, 0x9f, 0x8e)]
        Ringtone,

        /// <summary>
        /// Enumeration Synchronization service
        /// </summary>
        [EnumGuid(0x28d3aac9, 0xc075, 0x44be, 0x88, 0x81, 0x65, 0xf3, 0x8d, 0x30, 0x59, 0x09)]
        EnumerationSynchronization,

        /// <summary>
        /// Anchor Synchronization service
        /// </summary>
        [EnumGuid(0x056d8b9e, 0xad7a, 0x44fc, 0x94, 0x6f, 0x1d, 0x63, 0xa2, 0x5c, 0xda, 0x9a)]
        AnchorSynchronization,

        /// <summary>
        /// Apps service
        /// </summary>
        [EnumGuid(0x6bda0d43, 0x1f49, 0x42ef, 0x97, 0x7c, 0xe3, 0x6e, 0x9e, 0x67, 0x75, 0xdf)]
        Apps,

        /// <summary>
        /// Authentication service
        /// </summary>
        [EnumGuid(0x021fd406, 0xb019, 0x4de8, 0x88, 0x7d, 0x2f, 0x20, 0x27, 0x92, 0xaf, 0x23)]
        Authentication,

        /// <summary>
        /// WPD Companion service
        /// </summary>
        [EnumGuid(0x42bc3fce, 0xcfd2, 0x4d16, 0x9b, 0xcc, 0x7e, 0xd1, 0xb2, 0xc3, 0x99, 0x83)]
        WpdCompanionService,

        /// <summary>
        /// Media Library service
        /// </summary>
        [EnumGuid(0xbafce63f, 0xbb0e, 0x44bf, 0xb8, 0x95, 0xd9, 0x42, 0xa2, 0x87, 0xef, 0xf7)]
        MediaLibraryService,

        /// <summary>
        /// MTP Du Device service
        /// </summary>
        [EnumGuid(0x7ccd96ae, 0xd8b9, 0x4a96, 0xbb, 0x1f, 0x2e, 0xc3, 0xb8, 0x24, 0x7e, 0xc9)]
        MtpDuDeviceService,

        /// <summary>
        /// Storage Info service
        /// </summary>
        [EnumGuid(0xf9020cfe, 0x86ce, 0x4d92, 0x9d, 0x32, 0x22, 0xe5, 0x37, 0x84, 0x7c, 0xf9)]
        StorageInfo
    }
}
